package com.ygp.dtp.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @description: 通知类型枚举类
 * @motto: 代码源于生活，高于生活艺术
 * @author: zhouhengzhe
 * @date: 2022/8/4 16:37
 * @since 1.0
 **/
@Getter
@AllArgsConstructor
public enum NotifyTypeEnum {
    /**
     * 配置改变提醒
     */
    CHANGE("change"),

    /**
     * 线程池存活提醒
     * livenes = activeCount / maximumPoolSize
     */
    LIVE_NESS("liveness"),

    /**
     * 提醒容量预告
     */
    CAPACITY("capacity"),

    /**
     * 拒绝提醒
     */
    REJECT("reject");

    private final String code;

    /**
     * 根据code匹配通知类型枚举类，默认为null
     *
     * @param code code码
     * @return
     */
    public static NotifyTypeEnum getNotifyTypeEnum(String code) {
        for (NotifyTypeEnum typeEnum : values()) {
            if (typeEnum.getCode().equals(code)) {
                return typeEnum;
            }
        }
        return null;
    }

}
